package com.ruoyi.pingjiao.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.pingjiao.domain.Metaclass;
import com.ruoyi.pingjiao.domain.Student;
import com.ruoyi.pingjiao.domain.vo.EvaluationActivityVo;
import com.ruoyi.pingjiao.domain.vo.StudentVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 学生管理Mapper接口
 *
 * @author 胡浩鹏
 * @date 2022-10-15
 */
@Mapper
public interface StudentMapper
{
    /**
     * 查询学生管理
     *
     * @param studentId 学生管理主键
     * @return 学生管理
     */
    public Student selectStudentByStudentId(Long studentId);

    public Long selectStudentIdByUserId(Long userId);

    public Student selectStudentByUserId(Long userId);

    /**
     * 查询学生管理列表
     *
     * @param student 学生管理
     * @return 学生管理集合
     */
    public List<Student> selectStudentList(Student student);

    /**
     * 查询学生管理列表
     *
     * @param courseclassId 学生管理
     * @return 学生管理集合
     */
    public List<Student> selectStudentListByCourseclassId(long courseclassId);

    public List<Student> selectStudentListByMeataclassId(Long meataclassId);

    public List<Student> selectStudentListByMetaClassIds(@Param("metaclassList") List<Metaclass> metaclassList);

    /**
     * 新增学生管理
     *
     * @param student 学生管理
     * @return 结果
     */
    public int insertStudent(Student student);

    /**
     * 修改学生管理
     *
     * @param student 学生管理
     * @return 结果
     */
    public int updateStudent(Student student);

    /**
     * 删除学生管理
     *
     * @param studentId 学生管理主键
     * @return 结果
     */
    public int deleteStudentByStudentId(Long studentId);

    /**
     * 批量删除学生管理
     *
     * @param studentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStudentByStudentIds(Long[] studentIds);
    /**
     * 根据学号获取学生信息
     * @author  hpf
     * @param  studentNo 学号
     * @return 学生
     */
    public Student selectStudentByNo(String studentNo);
    /**
     * 根据学生id获取上课、教师信
     * @author  hpf
     *     *
     */
    public List<EvaluationActivityVo> selectTeacherListByStudentId(Map map);//传studentId与activityId

    Student getStudentInfo(Long userId);

    Student selectStudentByStudentNo(String studentNo);
}
